Systems and processes for efficiently storing and retrieving video content

ABSTRACT

Methods, systems and devices are described to improve the storage and retrieval of video content. The general concepts set forth herein could be used in any video storage system that uses disk drives to store video content, including remote or local storage digital video recorders (DVRs) and the like.

PRIORITY CLAIM

This application claims priority to U.S. Provisional Patent ApplicationSer. No. 62/018,839, which was filed on Jun. 30, 2014 and isincorporated herein by reference.

TECHNICAL FIELD

The present disclosure generally relates to file systems for storingdata in a digital computer. More particularly, the following discussionrelates to file systems and associated processes for efficiently storinglarge amounts of video content, as in a remote storage digital videorecorder (RSDVR) or the like.

BACKGROUND

Media streaming is becoming an increasingly popular way of deliveringtelevision, movies and other media content to viewers. Media streams aretypically point-to-point transmissions of digitized content that can besent over the Internet or a similar network. Media streaming is oftenused to facilitate video on demand (VOD) services, local storage and/orremote storage digital video recorder (LSDVR and/or RSDVR) services,Internet Protocol television (IPTV) services, placeshifted media viewingand/or any number of other convenient services. Generally, the mediastream is played back for the viewer in real time as the streamcontinues to be delivered to the player.

Often, media content is encoded into multiple sets of “streamlets” orother smaller segment files that can be individually requested andadaptively delivered to a particular client device. As changes innetwork bandwidth or other factors occur, the client device is able toreact to the changes by requesting future segments that are encoded withdifferent parameters (e.g., a higher or lower bit rate) for increased ordecreased quality, as desired. Adaptive media streaming typically reliesupon the media player client to control much of the streaming process.That is, the media player client, rather than the server, typicallydetermines the next segment of the stream that will be requested anddelivered to the player. Several examples of adaptive streaming systems,devices and techniques are described in US Patent Publication No.2008/0195743, which is incorporated herein by reference as one exampleof an adaptive media streaming system.

Various server systems and processes have been developed to store andretrieve encoded video data DVRs, video servers and/or the like. USPatent Publication 2014/0165116, for example, is incorporated herein byreference to show examples of file systems and associated processes thatcan be used with RSDVR systems. There is still a desire, however, toimprove the performance of RSDVRs, LSDVRs and other data storageintensive applications.

It is therefore desirable to create systems, devices and processes thatallow the efficient storage and retrieval of video content in an LSDVR,RSDVR, video server or the like. These and other desirable features andcharacteristics will become apparent from the subsequent detaileddescription and the appended claims, taken in conjunction with theaccompanying drawings and this background section.

BRIEF DESCRIPTION

The following discussion relates to various example implementations ofsystems, devices and processes that can efficiently store and retrievevideo or other content from one or more disk drives. These concepts maybe used in digital video recorders, remote storage video recorders,video on demand services, or other applications as desired.

Some implementations provide DVR or similar disk-based systems to managestorage of video content. The system suitably comprises an interfaceconfigured to receive the video content, a disk drive configured tostore the video content on a spinning disk having an inner portion andan outer portion, and a processor. The processor is programmed orotherwise configured to control the reception of the video content viathe interface and to direct the storage of the received video content onthe disk drive. More particularly, the processor is programmed orotherwise configured during a peak demand period to direct the storageof the received video content along the outer portion of the spinningdisk. During an off-peak demand period, the processor is programmed orotherwise configured to direct the transfer of video content storedalong the outer portion of the spinning disk to the inner portion of thespinning disk so that the outer portion retains contiguous availablestorage space at the beginning of a subsequent peak demand period.

Other embodiments provide a computer-implemented process to managestorage of video content on a disk drive having a spinning diskcomprising an inner portion and an outer portion. The process suitablycomprises receiving the video content; during a peak demand period,directing the storage of the received video content along the outerportion of the spinning disk; and during an off-peak demand period,directing the transfer of video content stored along the outer portionof the spinning disk to the inner portion of the spinning disk so thatthe outer portion retains contiguous available storage space at thebeginning of a subsequent peak demand period.

Still other embodiments provide a method executed by a disk controlleror other processor to control a disk drive that stores digital data on adisk. The method suitably comprises receiving the digital data forstorage on the disk drive; initially directing the storage of thereceived digital data along an outer region of the disk; subsequentlydirecting the transfer of the received digital data from the outerregion of the disk to an inner region of the disk; and responding to asubsequent request for the received digital data by reading the digitaldata from the inner region of the disk.

Still other embodiments provide additional processes, systems anddevices for managing file storage on a disk drive. The examplespresented in this summary may be modified or augmented in any manner,and many additional examples are described below.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

Exemplary embodiments will hereinafter be described in conjunction withthe following drawing figures, wherein like numerals denote likeelements, and

FIG. 1 is a block diagram of an example remote storage digital videorecorder (RSDVR) system;

FIG. 2 is a diagram of an example disk with storage split between anouter portion and an inner portion;

FIG. 3 is a flowchart of an example process for managing the storage andretrieval of data using a disk drive; and

FIG. 4 is a diagram showing an example of a disk read and write timingsequence.

DETAILED DESCRIPTION

The following detailed description of the invention is merely exemplaryin nature and is not intended to limit the invention or the applicationand uses of the invention. Furthermore, there is no intention to bebound by any theory presented in the preceding background or thefollowing detailed description.

In a typical digital video recorder (DVR), much more data is writtenthan read. That is, most recorders store a substantial amount of videocontent that is never retrieved for viewing. This is especially true inan adaptive video delivery system in which multiple copies of eachprogram are encoded at various qualities so that the media player isable to adaptively request segments at video encoded at a desiredquality or bandwidth. In a typical adaptive rate RSDVR, for example,content is often encoded at 5-10 (or more) different quality levels,even though the video content is only retrieved and viewed at one level.

Moreover, most recording and viewing of video content occurs in arelatively short time period, often in the evening hours of the day.This period of time, often referred to as “prime time”, simplyrepresents a period of time during the day in which the recorder isbusiest due to a higher volume of recording and/or viewing. During“prime time”, the recorder is often operating at its peak load, so it istypically desirable to maximize the amount of data that can betransferred to the drive during this time.

Further, due to the nature of conventional hard disk drives, it isfaster to write data to the outer edge of the disk than to the insideregion. This is because the write head of the disk comes into contactwith a larger surface area at the outer edge of a spinning disk than atthe inner edge as the disk spins at a fixed angular rate. In practice,most conventional disk drives can store data about twice as fast at theouter edge than they can at the inner edge. Moreover, hard diskstypically function more efficiently when they are given operations thataccess sequential areas of the disk. That is, back to back operationscan typically be performed with little or no pausing , thereby allowingfaster operation in comparison to moving the disk head from one regionto another. The hard disk therefore operates most efficiently when it isperforming sequential input/output operations toward the outer regionsof the disk.

A more efficient file system, then, is designed so that during “primetime” or other periods of peak demand the disk spends as much time aspossible performing sequential back-to-back writes on the outer portionof the disk. To accomplish this, the file system can be designed to movedata from the outer portion of the disk to the slower inner portionduring non-peak times. This ensures that the faster outer portion iskept clear for the next peak load time. During peak loads, then, thedrive sequentially writes on the outside of the disk until it isinterrupted to perform a read operation.

Moreover, read operations can be designed to use read ahead techniquesto predictively read large chunks of data from the disk (e.g., 2-10seconds). The data read from the disk can be cached in memory until itis delivered to the requesting party. Multiple reads (including readsfor different video streams) can also be delayed or combined so thatinterruptions to the outer-region writing are minimized. By encouragingcontiguous outer-region writing and minimizing interruptions for readoperations, the overall efficiency of the drive can be greatly enhancedduring periods of peak operation.

During off-peak times, the outside part of the disk is cleaned andcleared up by moving data to the inner portion of the disk so that thedisk is prepared for future peak load times. Any recordings made duringnon-peak time can be stored on the inner portion of the disk, therebykeeping the outer portion free until peak time. As recordings time out(e.g., due to automatic time out, active user deletion, passive userdeletion, etc.) the space created by the deleted recordings can bere-used, and/or the disk can be further cleaned so that files are storedcontiguously, thereby further minimizing movement of the disk headduring read operations.

Turning now to the drawing figures, FIG. 1 shows an example of a remotestorage DVR (RSDVR) system 100 that uses disk storage system 110 tostore video content for delivery to one or more media client systems140A-B executing media player applications 142A-B (respectively). Asillustrated in FIG. 1, RSDVR system 100 suitably includes a disk storagesystem 110, a video encoder 120 and a media server 130. Generallyspeaking, video encoder 120 receives video content 125 from a satellite,fiber optic, cable or other source and encodes the received content intoa format that is suitable for storage and transmission over network 135.In various embodiments, encoder 120 is an adaptive encoder that encodestelevision or other video content into one or more copies. Media server130 could represent any sort of conventional file, stream or othercontent server that is compatible with network 135. Media server 130could be implemented in some embodiments with a conventional contentdelivery network (CDN) that delivers segment files in response toconventional HTTP or other constructs.

In an exemplary embodiment, encoder 120 encodes the received content 125into multiple sets of media segments that are commonly indexed in timebut that have different encoding parameters (bit rate, frame rate,resolution, etc.) to support delivery and playback of streams thatconsume different amounts of bandwidth. Although each of the componentsare drawn separately in FIG. 1, equivalent embodiments could combinesome of all of the features of system 100 into a common computing systemhaving one or more processors. Other embodiments could separate thevarious functions across any number of different computing systems andprocessors, including any number of cloud services.

Disk storage system 110 is a computer system based upon any conventionalcomputing hardware such as processor 111, memory 112 and input/outputinterfaces 113. Interfaces 113 may include network (e.g., IEEE 802.11 or802.14), bus or other interfaces for receiving encoded video contentfrom encoder 120 and for providing requested video to media server 130.In various embodiments, disk storage system is a rack-mounted systemthat operates within a data center or the like; other embodiments couldimplement disk storage system 110 within a personal computer, set topbox, or other electronic device.

Disk storage system 110 suitably executes a control application 115 thatperforms the various functions associated with a file system.Application 115 may be stored as software, firmware or the like inmemory 112 for execution by processor 111 in an exemplary embodiment.

Disk storage system 110 may support any number of disk drives 114 forstorage and retrieval of video content. In various embodiments, eachdisk drive 114 includes a spinning disk with a read/write head that iscapable of storing digital data, often through application ofconventional electromagnetic techniques. As noted above, such diskstypically write data more quickly when contiguous blocks are available,particularly along the outer diameter of the spinning disk. Hence, thefaster outer regions of the disk can be cleared on a daily or othertemporal basis to ensure their availability during periods of peakdemand (e.g., “prime time” for video recording).

FIG. 2 shows an example of a disk 200 in which data is written by aread/write head 202 along an outer region 205 during a period of peakdemand. As time becomes available (e.g., when peak demand is over orwhenever the read/write head 202 is otherwise available), the datawritten to the outer region 205 can be transferred to the inner region204 for subsequent retrieval and to ensure that the faster and moreefficient outer region 205 remains clear for subsequent periods of heavyuse. The division between “inner region 204” and “outer region 205” isdrawn somewhat arbitrarily in FIG. 2 for ease of illustration. In apractical embodiment, the inner region 204 is typically the region ofthe disk 200 that is closest to the center, whereas outer region 205 isclosest to the outer diameter. As data is written to the disk, the tworegions 204 and 205 may grow towards each other until newly-writtencontent in the outer region 205 can be transferred to the inner region204 for longer-term storage.

As noted above, the disk write head 202 comes into contact with agreater portion of the outer periphery of disk 200 than the innerperiphery for a given period of time. This is because the constantangular rotation involves greater linear movement of the outer region205 than the inner region 204 of the disk. This makes the outer region205 more efficient for fast storage, while leaving the inner region 204free for longer-term storage. Additionally, transferring data from theouter region 205 to the inner region 204 presents the opportunity todefragment or otherwise reorganize the data to thereby place contiguousportions of files in spatial continuity within the inner region 204.That is, fast writing may distribute portions of files into disjointedlocations, particularly if the disk 200 is simultaneously writingmultiple files. When these files are re-written to the inner portion204, the different portions of the files can be re-written in contiguousorder, thereby making subsequent read operations more efficient. Ifrelatively large portions of files are stored contiguously, then theread/write head 202 only needs to move a very small distance to processmultiple reads of the file. This can make reads much more efficient,particularly if additional portions of the file are “read ahead” andstored in a buffer for subsequent processing. This would allow theread/write head 202 to be used much more efficiently because once thehead 202 is in position, it is able to provide more useful data than waspreviously available. By increasing the amount of data read while theread/write head is in position, the efficiency of the read process canbe greatly improved.

FIG. 3 shows an example process 300 in which the operation of disk drive114 can be managed through efficient allocation of regions 204 and 205of disk 200. The various functions shown in FIG. 3 may be implementedwithin a file system control application 115 or the like executed bydisk storage system 110. Other embodiments may execute some or all ofthe functions shown in FIG. 3 with different hardware or using othertechniques.

As noted above, process 300 manages the disk operations differentlyduring periods of peak and non-peak demand (function 302). Peak timesmay be defined in any manner. In some embodiments, peak times maycorrespond to known time periods in which television viewing and/orrecording are known to be most popular (e.g., “prime time” is generallyconsidered to be 8-11 pm Eastern and Pacific, 7-10 pm Central andMountain time, although other embodiments may define “prime time” toinclude additional time, less time, or even entirely different times).In other embodiments, peak times are defined through actual use. Thatis, if the drive is observed to be highly utilized at a particular time,that time could be considered a “peak” time even though the time may notcorrespond to traditional “prime time” hours. A particular user may keepnon-traditional viewing hours, for example, or may have an interest inparticular programming that is broadcast during hours other than “primetime”. The particular peak times considered in function 302 maytherefore be regularly-occurring times in some implementations, and/ortimes that are identified though actual use as desired.

During times of peak demand, received content is written to the outerportion of the disk (function 308). As noted above, the write head comesinto contact with more disk blocks on the outer portion of the diskduring a fixed period of time in comparison to the inner portion of thedisk. This faster operation allows for faster write operations duringthe times that the disk is in greatest demand. Note that someembodiments could initially write all of the received data to the outerportion 205 of disk 200, even if the data is received during a non-peaktime, for more consistent processing. If sufficient time is availablefor inner region writing (function 304), however, other embodiments maymake use of this time as desired.

The write operations may be further optimized at least during peak timesby aggregating read operations, as appropriate (function 310). Readoperations may be aggregated from different video streams, for example,and/or future read operations may be predicted based upon past readinstructions. If process 300 receives a request for a particular datasegment having a particular encoded quality, for example, process 300may predict that a subsequent request for the next data segment in thatsame stream is likely to be received in the near future. To anticipatethis request, it may be beneficial in some implementations to “readahead” and request the future segment even though the request has notyet been received. This is particularly beneficial if the subsequentsegment is physically stored in contiguous disk blocks with therequested segment, since the read head 202 is already positioned verynear the proper location on disk 200 for reading the next video segment.Again, read operations can be consolidated or aggregated in any manner.Read requests may be aggregated between different video streams,augmented with predicted read requests, or otherwise aggregated soreduce the interruptions to the write process and/or to reduce movementof the read/write head 202, as desired.

Data read from the disk 200 is buffered in memory (function 312) asdesired. Data may be buffered in memory 112 (FIG. 1) in someembodiments, or in separate memory associated with disk storage systemand/or media server 130, as desired. Subsequent read requests receivedfrom media players 142A-B can then be quickly processed from the memory,without a need for additional access to the spinning disk 200 oradditional movement of the disk read/write head 202.

During off-peak times, the outer portion 205 of the disk 200 is keptclear so that the outer portion 205 retains contiguous available storagespace at the beginning of a subsequent peak demand period. To that end,some embodiments will write video content received during off-peak timesdirectly to the inner portion 204 of disk 200 (function 304).Alternatively, all received content (including content received duringoff-peak times) could be initially written to the outer portion 205 ofdisk 200, and then transferred to the central portion during asubsequent step 306, as desired.

As noted above, content stored on the outer portion 205 of disk 200 iscopied to the inner portion 204 as time allows (function 306). Thisensures that the fastest writing space is available when the disk 200 isin greatest demand, thereby providing a very efficient disk operatingscheme. The moving function 306 may be implemented in any manner;various embodiments could simply read some or all of the data from outerportion 205 into a memory, buffer or other temporary storage and thenwrite the data from the temporary storage to the inner portion, asdesired.

Function 306 may further include defragmenting or other organizing ofdata stored on disk 200 to provide even better optimization of readtimes. Defragmenting and/or organizing of segment data can be performedafter content has been automatically and/or manually deleted to makemore efficient use of free space on the disk 200, as desired.Defragmenting may occur by processing links or pointers contained withinthe stored data, by consulting a file allocation table (FAT) thatdescribes the locations of data associated with particular files, and/orin any other manner.

The process shown in FIG. 3 is one example that could be modified inmany different ways. As noted above, peak times may occur at certainidentified times (e.g., “prime time” or other hours of theday/week/month/year), or on an as-needed basis. An equivalent embodimentcould, for example, write all received data to the outer region 205 ofdisk 200 as it is received, and then transfer previously-written datafrom the outer region 205 to the inner region 204 as time becomesavailable. Many other embodiments could be fashioned in any number ofequivalent variations.

FIG. 4 shows a timing diagram 400 of example operations of process 300occurring during a peak demand period. In this example, video data iswritten to the outer region 205 of disk 200 during time periods 402 and404. As read requests 411-414 are received, the write operations aretemporarily interrupted. These interruptions, however, can be combinedand/or predictively enhanced so that their effects upon the writeprocess are substantially reduced. As an example, read requests 411 and412 for two different video segments are received during write period402. File system 115 suitably responds to the requests 411 and 412during period 403. In this example, period 403 combines the readoperations indicated by requests 411 and 412 to minimize movement of thedisk head 202 and to prevent additional interruptions to the writeprocess.

Moreover, various embodiments may predict additional segments that arelikely to be requested in the near future. These predicted requestscould be combined into period 403 so that the predicted segments areread along with the actually-requested segments. This is particularlyefficient if the segments of the video stream are stored relativelycontiguously on disk 200, thereby further reducing movement of themechanical drive head 202. In various embodiments, several segments ofthe same segment family (e.g., subsequent segments of the same videoquality) can be read and buffered in memory, thereby eliminating theneed to interrupt the write process for subsequent read requests. In oneembodiment, one to five future video segments (corresponding to two toten seconds of video content) could be predicted and buffered, althoughother embodiments could equivalently obtain any number of segmentsrepresenting any amount of video content.

To continue the example of FIG. 4, read period 403 will typically obtainthe segments requested by requests 411 and 412, as well as any predictedsegments associated with these requests. If a subsequent read request413 requests one of the predicted and buffered segments, then therequested segment can be delivered from the buffer without additionalinterruption of the head 202. Any requests 414 for different segmentscan be processed during a subsequent read period 405, as desired.

Read periods (e.g., periods 403, 405) may be scheduled in any regular orirregular manner. Various embodiments could implement read periods 403,405 as interrupts, as regularly-scheduled interrupts (e.g., every halfsecond or so in one example), or in any other manner.

The concepts set forth above are particularly well-suited for videorecorders and RSDVR systems in which a large amount of data is writtenrelative to the amount that is read, and in which certain time periods(e.g., “prime time”) are busier than other times. Equivalent conceptsmay be readily applied to other data storage applications other thanvideo storage. These concepts may be applied in data warehousing orbusiness intelligence settings, for example, as well as in homeentertainment or personal computing settings.

The various concepts set forth herein may be readily applied to large orsmall disk arrays for further efficiency and optimization. Datawarehouse systems, content delivery networks, cloud storage systemsand/or any other systems that make use of multiple disk drives couldmake use of the concepts described herein on some or all of their drivesfor greatly improved performance.

The foregoing discussion therefore considers several different systems,devices and processes/methods to improve the storage and retrieval ofdigital content on a disk drive. These general concepts may be expandedor modified as desired to create any number of alternate but equivalentembodiments.

The term “exemplary” is used herein to represent one example, instanceor illustration that may have any number of alternates. Anyimplementation described herein as exemplary is not necessarily to beconstrued as preferred or advantageous over other implementations. Whileseveral exemplary embodiments have been presented in the foregoingdetailed description, it should be appreciated that a vast number ofalternate but equivalent variations exist, and the examples presentedherein are not intended to limit the scope, applicability, orconfiguration of the invention in any way. To the contrary, variouschanges may be made in the function and arrangement of elementsdescribed without departing from the scope of the claims and their legalequivalents.

What is presently claimed is:
 1. A system to manage storage of videocontent, the system comprising: an interface configured to receive thevideo content; a disk drive configured to store the video content on aspinning disk having an inner portion and an outer portion; and aprocessor configured to control the reception of the video content viathe interface and to direct the storage of the received video content onthe disk drive, wherein the processor is configured: during a peakdemand period, to direct the storage of the received video content alongthe outer portion of the spinning disk; and during an off-peak demandperiod, to direct the transfer of video content stored along the outerportion of the spinning disk to the inner portion of the spinning diskso that the outer portion retains contiguous available storage space atthe beginning of a subsequent peak demand period.
 2. The system of claim1 wherein the processor is further configured to process reads of thevideo content during at least the peak demand period by aggregatingmultiple read operations into a single read session, and wherein atleast one of the read operations is a predicted read operation thatpredicts a future read operation that has not yet been received basedupon a previously-received read operation.
 3. The system of claim 1wherein the processor is further configured to direct the storage of thereceived video content along the inner portion of the spinning diskduring the off-peak demand period.
 4. The system of claim 1 wherein thesystem further comprises a memory and wherein the video content obtainedduring the single read session is buffered in the memory.
 5. The systemof claim 1 wherein the system further comprises a memory and wherein thevideo content obtained during the single read session is buffered in thememory until a future read operation is received.
 6. Acomputer-implemented process to manage storage of video content on adisk drive having a spinning disk comprising an inner portion and anouter portion, the process comprising: receiving the video content;during a peak demand period, directing the storage of the received videocontent along the outer portion of the spinning disk; and during anoff-peak demand period, directing the transfer of video content storedalong the outer portion of the spinning disk to the inner portion of thespinning disk so that the outer portion retains contiguous availablestorage space at the beginning of a subsequent peak demand period. 7.The computer-implemented process of claim 6 further comprisingprocessing reads of the video content during at least the peak demandperiod by aggregating multiple read operations into a single readsession, and wherein at least one of the read operations is a predictedread operation that predicts a future read operation that has not yetbeen received based upon a previously-received read operation.
 8. Theprocess of claim 7 further comprising storing the received video contentalong the inner portion of the spinning disk during the off-peak demandperiod.
 9. The process of claim 7 wherein the video content obtainedduring the single read session is buffered in a memory.
 10. The processof claim 7 wherein the video content obtained during the single readsession is buffered in a memory until a future read operation isreceived.
 11. A method executed by a processor to control a disk drivethat stores digital data on a disk, the method comprising: receiving thedigital data for storage on the disk drive; initially directing thestorage of the received digital data along an outer region of the disk;subsequently directing the transfer of the received digital data fromthe outer region of the disk to an inner region of the disk; andresponding to a subsequent request for the received digital data byreading the digital data from the inner region of the disk.
 12. Themethod of claim 11 wherein the reading of the digital disk comprisesaggregating multiple read operations into a single movement of theread/write head of the disk drive.
 13. The method of claim 12 wherein atleast some of the read operations are predicted read operations thathave not yet been requested.
 14. The method of claim 13 wherein thedigital data is stored in a buffer until additional requests for thedigital data are received.
 15. The method of claim 11 wherein the outerregion of the disk is closer to the outer periphery of the disk than theinner region so that angular rotation of the disk places a read/writehead of the disk drive into contact with a greater linear portion of theouter region of the disk than of the inner region of the disk.
 16. Themethod of claim 11 wherein the storage of the received digital data isinitially directed along the outer region of the disk during a period ofrelative peak demand for the disk.
 17. The method of claim 16 whereinthe received digital data is transferred from the outer region of thedisk to the inner region of the disk during a period of non-peak use ofthe disk drive.
 18. The method of claim 17 wherein the transfer of thereceived digital data from the outer region of the disk to an innerregion of the disk comprises defragmenting the received digital data sothat data streams are stored contiguously on the inner region of thedisk.
 19. The method of claim 16 wherein the reading of the digital diskduring the period of relative peak demand comprises aggregating multipleread operations into a single read session.